1. Field of the Invention
The present invention relates to a technology for developing web applications in a multiple virtual machine environment.
2. Description of the Related Art
In recent years, an office environment system is being built which allows client based customization by adding or deleting applications to provide an optimum office environment in response to requirements from various clients. The customization can be performed by adding a new application developed by a third-party vendor, which provides hardware components or software programs installable in an existing hardware and software configuration. However, it is obvious that such a newly added application should not undermine the basic functions of the system.
Usually, when an office environment system that allows client based customization is built in a process-based operating system (OS), such as UNIX (registered trademark), then the process is divided into an appropriate number of granules to make it robust against errors or exceptions. On the other hand, when Java (registered trademark) is used as the programming language for application development, then a plurality of applications need to be executed in a single virtual machine. In that case, it is not reasonable to divide the process in granules. Even so, to enhance the robustness of the office environment system, it can be built with two virtual machines where web applications for basic functionality are installed in one virtual machine and applications developed by third-party vendors are installed in the other virtual machine.
To build a web-based application runtime environment, it is necessary to set certain port numbers as external ports for receiving client requests from a client device. In that regard, Japanese Patent Application Laid-open No. 2005-092457 discloses an information processing apparatus having a net service functionality in which a protocol daemon receives client requests via a plurality of external ports and, based on application identification information included in each client request transfers the client requests to specific applications for processing.
Meanwhile, in a multiple virtual machine environment, if a single hyper text transfer protocol (HTTP) server is installed to supervise web applications of all virtual machines, then inter-process communication between the HTTP server and the web applications becomes necessary. Moreover, at the time of installing a new web application in a virtual machine, inter-process communication functionality needs to be added in that web application. That increases the workload of a developer.
As a solution to this problem, a multiple virtual machine environment has been proposed in which each virtual machine independently runs an HTTP server and only one of those HTTP servers can receive client requests from a client device. Upon receiving a client request, that particular HTTP server transfers the client request to another HTTP server that supervises a web application configured to process that particular client request. As each virtual machine independently supervises a web application, a client request can be processed only by transferring it to a suitable web application. That makes inter-process communication redundant and enables achieving reduction of the workload of a developer.
However, in a multiple virtual machine environment where each virtual machine independently runs an HTTP server, it is necessary to set certain port numbers as internal ports that are different from the port numbers set as external ports and that enable inter-server communication between the HTTP servers. Although it is possible to allow a user to manually set port numbers as internal ports, management of port numbers becomes complicated if the number of virtual machines is large or if port numbers for external ports are altered. Moreover, although the technology disclosed in Japanese Patent Application Laid-open No. 2005-092457 focuses on managing external ports, the relation between external ports and internal ports is not given due consideration.